隨著時間過去,面對資料量的增加與電腦性能日新月異,深度學習的技術逐漸慢慢取代了機器學習。我們先前有在介紹機器學習時提到過,所謂的機器學習是指著重於訓練電腦從資料中學習,並根據經驗改進。而深度學習和機器學習的差異就在於機器學習是從資料中學習模型,而深度學習則是以人工神經網路為架構,對資料進行表徵學習的演算法。
詳細來說就是:
機器學習會先進行特徵擷取後,再將資料輸入訓練模型後得到結果並輸出;而深度學習就是把資料丟進訓練模型後,訓練模型會自己做特徵擷取(自學),再進行判斷後輸出。
而面對更加龐大訓練集的資料,深度學習能夠擷取的特徵可能性就越多,最後判斷的結果也能夠更加精準。下圖顯示當資料量超過一定的等級,深度學習的效果會遠遠超過傳統機器學習算法的效果。
因此,如果我們的數據量足夠,並且想獲得較好的結果,在不考慮開發時間的情況下,通常會選擇深度學習演算法。
首先我們必須知道,為什麼我們能夠思考?廢話因為我們有大腦阿
可是,很多生物都有大腦阿?為什麼我們人類比較聰明呢?
因為我們所認為的思考能力,多半是由大腦外層區域掌管。它包覆著大腦的核心,外觀有深深的皺摺。它被稱為大腦皮質,而人類大約有160億個大腦皮質神經元。
PS:狗的大腦皮質神經元大約有4.29億個;貓大約有2.5億個。所以理論來說狗狗確實比貓貓聰明(?
而人工神經網路,顧名思義就是以人工的方式建立的神經網路。我們透過電腦來模擬大腦的神經系統,目的就是希望機器也能夠做到像是脊椎動物的大腦那般自己思考的能力,因此它是一種模仿生物神經網路的計算模型。並將它用於辨識、決策、預測...等。
在人工神經網路中,我們將一個簡單的人工節點稱作神經元(neurons)。以下為神經元的示意圖:
圖源:維基百科
數學式表示為 。由此可見,一個神經元的功能是求得輸入向量與加權向量的內積後,經一個非線性傳遞函式得到一個純量結果。
而一個又一個的神經元連接在一起後就形成了一個類似生物神經網路的網狀結構。最基礎神經網路架構可分作輸入層、隱藏層、輸出層,如下圖所示:
輸入層負責將輸入的值傳遞到下一層,其本身並不會對輸入值進行任何運算。而隱藏層內的神經元將會透過各種方式來轉化輸入數據,最後再由輸出層去接收隱藏層的最後輸入,並決定最後的輸出。
1.前向傳播法(Forward-Propagation)
前向傳播法其實相當直觀。我們剛剛已經知道整個神經網路架構的運作方式了對吧?就是 輸入層 → 隱藏層 → 輸出層 。而前向傳播法就是透過這個步驟,透過神經元的層層運算後最後得到輸出值來預測答案。
2.反向傳播法(Backward-Propagation)
然而你我都知道,由於預測結果未必準確,因此我們還需要校正各層
神經元的權重才行,這時候我們就需要用反向傳播法了。
為了得知預測結果究竟與實際答案差了多少,科學家們設計了代價函數(Cost Function)。透過代價函數我們就能夠知道預測結果與實際答案的差距了!當預測結果和真實答案兩者間的差距越大,代價函數就越大;因此,為了讓代價函數達到最小,我們會利用反向傳播法,將結果從右到左反向傳遞回去,調整神經元的權重以找到代價函數的最小值。
https://zh.wikipedia.org/wiki/%E4%BA%BA%E5%B7%A5%E7%A5%9E%E7%BB%8F%E7%BD%91%E7%BB%9C
https://medium.com/mr-lius-murmur/ai-%E5%AD%B8%E7%BF%92%E7%AD%86%E8%A8%98-i-%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92-vs-%E6%B7%B1%E5%BA%A6%E5%AD%B8%E7%BF%92-98b1ce9123a3
https://www.stockfeel.com.tw/%E6%A9%9F%E5%99%A8%E5%AD%B8%E7%BF%92%E7%9A%84%E8%A1%B0%E9%A0%B9%E8%88%88%E7%9B%9B%EF%BC%9A%E5%BE%9E%E9%A1%9E%E7%A5%9E%E7%B6%93%E7%B6%B2%E8%B7%AF%E5%88%B0%E6%B7%BA%E5%B1%A4%E5%AD%B8%E7%BF%92/
今天就先介紹到這裡,明天來講講遞迴神經網路 RNN 、梯度下降與梯度消失。